[M5Stack Core2 for AWS] ArduinoでGroveポートのGPIOを使用してみました
1 はじめに
IoT事業部の平内(SIN)です。
今回は、Arduinoを使用してM5Stack Core2 for AWSでGroveポートから利用できるGPIOを使用してみました。
最初に、動作確認している様子です。ディスプレイ上のボタンに連動してGPIOをHIGH/LOWさせてLEDをON/OFFしています。
サンプルで使用しているディスプレイ上のボタンについては、下記の記事をご参照ください。
[M5Stack Core2 for AWS] Arduinoで仮想ボタンを作成してみました
2 PORT A(Grove)
M5Stack Core2 for AWSでは、Groveのポートが3つありますが、電源スイッチ側にあるPORT Aから、GPIO 32,33が利用可能です。
そして、こちらは、I2Cと供用になっています。
https://docs.m5stack.com/en/core/core2
M5Stack.begin() で、bool I2CEnable をtrueにするとI2Cで初期化されてしまうので、今回は、ここをfalseとしました。
https://github.com/m5stack/m5-docs/blob/master/docs/ja/api/system.md
3 コード
コードは、以下の通りです。
初期化時に、GPIOの32,33をOUTPUTに設定し、ボタンのトグル状態で、GPIOをHIGH/LOWを切り替えているだけです。
#include <M5Core2.h> #include "VButton.h" VButton *yellow_button; VButton *green_button; #define PIN_YELLOW 32 #define PIN_GREEN 33 void button_callback(char *title, bool use_toggle, bool is_toggled){ if(title == "YELLOW"){ digitalWrite(PIN_YELLOW, is_toggled); }else{ digitalWrite(PIN_GREEN, is_toggled); } } ushort getColor(uint8_t red, uint8_t green, uint8_t blue){ return ((red>>3)<<11) | ((green>>2)<<5) | (blue>>3); } void setup(){ M5.begin(true, true, true, false); // I2C無効(PORTA をGPIOで使用するため) M5.Lcd.setBrightness(200); M5.Lcd.fillScreen(WHITE); green_button = new VButton("GREEN", button_callback, true, -30, getColor(0, 100, 0)); yellow_button = new VButton("YELLOW", button_callback, true, 30, getColor(100, 100, 0)); // GPIO 32,33 モード設定 pinMode(PIN_YELLOW, OUTPUT); pinMode(PIN_GREEN, OUTPUT); } void loop() { green_button->loop(); yellow_button->loop(); }
4 最後に
M5Stack Core2 for AWSでは、GPIOの端子が見えないようにカバーされていますが、特定のもので良ければ、今回のようにGroveで簡単に利用可能です。
今回使用したPORTA以外にも、あと2つGroveポートがあります。
5 参考リンク
Visual Studio Code + PlatformIO 環境で M5Stack Core2 for AWS でHello Worldしてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してLEDを光らせてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してディスプレイに表示してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して仮想ボタンの動作を確認してみました
[M5Stack Core2 for AWS] LVCLを使用してディスプレイ上のボタンの動作を確認してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して電源を操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してスピーカーを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して静電容量式タッチパネルを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してジャイロセンサーを操作してみました
[M5Stack Core2 for AWS] PlatformIO を使用して、ArduinoでHello Worldしてみました
[M5Stack Core2 for AWS] ArduinoでLED (Adafruit NeoPixel フルカラーLED) を点灯してみました
[M5Stack Core2 for AWS] Arduinoで仮想ボタンを作成してみました
[M5Stack Core2 for AWS] ArduinoでMQTT接続してみました
[M5Stack Core2 for AWS] Arduinoでオーディオファイルを再生してみました
[M5Stack Core2 for AWS] Arduinoでマイクの利用方法を確認してみました